package com.hsurosy.domain.strategy.service.rule.tree.factory.engine;

import com.hsurosy.domain.strategy.service.rule.tree.factory.DefaultTreeFactory;

import java.util.Date;

/**
 * @Author Hsu琛君珩
 * @Date 2024-10-19 15:30
 * @Description 决策树引擎接口
 * @Version: v1.0.0
 */
public interface IDecisionTreeEngine {

    /**
     * 执行规则树的处理逻辑
     *
     * @param userId 用户ID
     * @param strategyId 抽奖策略ID
     * @param awardId 奖品ID
     * @param endDateTime 活动结束时间
     * @return 返回 `StrategyAwardData` 对象，包含奖品数据（奖品ID和奖品规则值）
     */
    DefaultTreeFactory.StrategyAwardVO process(String userId, Long strategyId, Integer awardId, Date endDateTime);

}
